Code block segmentation and configuration for concatenated turbo and RS coding

ABSTRACT

A method for performing code block segmentation for wireless transmission using concatenated forward error correction encoding includes receiving a transport block of data for transmission having a transport block size, along with one or more parameters that define a target code rate. A number N of inner code blocks needed to transmit the transport block is determined. A number M-outer code blocks may be calculated based on the number of inner code blocks and on encoding parameters for the outer code blocks. The transport block may then be segmented and encoded according to the calculated encoding parameters.

CLAIM OF PRIORITY UNDER 35 U.S.C. 119(e)

The present application is a continuation of U.S. application Ser. No.15/462,719 filed Mar. 17, 2017, which is a continuation of U.S.application Ser. No. 14/749,030 filed Jun. 24, 2015, now U.S. Pat. No.9,602,235 issued Mar. 21, 2017 in which claims priority to andincorporates by reference U.S. Provisional Application No. 62/018,130,filed Jun. 27, 2014, entitled “Code Block Segmentation And ConfigurationFor Concatenated Turbo And RS Coding.”

FIELD OF THE DISCLOSURE

This disclosure generally relates to wireless communication, and inparticular to transmission of blocks of data using forward errordetection (FEC).

BACKGROUND OF THE DISCLOSURE

Wireless cellular communication networks incorporate a number of mobileuser devices and a number of NodeBs. A NodeB is generally a fixedstation, and may also be called a base transceiver system (BTS), anaccess point (AP), a base station (BS), or some other equivalentterminology. As improvements of networks are made, the NodeBfunctionality evolves, so a NodeB is sometimes also referred to as anevolved NodeB (eNB). In general, NodeB hardware, when deployed, is fixedand stationary, while the user equipment hardware is portable.

In contrast to NodeB, the mobile user equipment can comprise portablehardware. User equipment (UE), also commonly referred to as a terminalor a mobile station, may be fixed or mobile device, and may be awireless device, a cellular phone, a personal digital assistant (PDA), awireless modem card, and so on. Uplink communication (UL) refers to acommunication from the mobile UE to the NodeB, whereas downlink (DL)refers to communication from the NodeB to the mobile UE. Each NodeBcontains radio frequency transmitter(s) and the receiver(s) used tocommunicate directly with the mobiles, which move freely around it.Similarly, each mobile UE contains radio frequency transmitter(s) andthe receiver(s) used to communicate directly with the NodeB. In cellularnetworks, the mobiles cannot communicate directly with each other buthave to communicate with the NodeB.

Wireless users require high-speed connections that support real timevideo, streaming music, and other multimedia applications. As a result,demands on wireless networks approach the broadband speeds and userexperience provided by traditional DSL and cable modem wireline service.Wireless networks continue to evolve to next-generation packetarchitectures capable of supporting enhanced broadband connections withthe introduction of 4G systems.

The higher speeds and capacity provided by 4G wireless networks putstrain on backhaul networks and the carriers providing backhaul servicesas the transport requirements increase. Providers are shifting fromtraditional TDM transport in 2G and 3G networks to packet transport tosupport higher data rates, reduce network latency, and support flexiblechannel bandwidths in 4G networks. The backhaul networks requireefficient Bit-Error-Rate (BER) performance to support 4G mobilenetworks.

Error-control coding techniques may detect and possibly correct errorsthat occur when messages are transmitted in a communication channel. Toaccomplish this, the encoder transmits not only the information symbolsbut also extra redundant parity symbols. The decoder interprets what itreceives, using the redundant symbols to detect and possibly correctwhatever errors occurred during transmission.

Block coding is a special case of error-control coding. Block-codingtechniques map a fixed number of message symbols to a fixed number ofcode symbols. A block coder treats each block of data independently andis a memory-less device. The information to be encoded consists ofmessage symbols and the code that is produced consists of codewords.Each block of K message symbols is encoded into a codeword that consistsof N message symbols. K is called the message length, N is called thecodeword length, and the code is called an [N,K] code.

Turbo codes are a class of high-performance error correction codesdeveloped in 1993 which are finding use in deep space satellitecommunications and other applications where designers seek to achievemaximal information transfer over a limited-bandwidth communication linkin the presence of data-corrupting noise. The channel coding scheme fortransport blocks in LTE is Turbo Coding with a coding rate of R=1/3,using two 8-state constituent encoders and a contention-free quadraticpermutation polynomial (QPP) turbo code internal interleaver. Trellistermination is used for the turbo coding. Before the turbo coding,transport blocks are segmented into byte aligned segments with a maximuminformation block size of 6144 bits. Error detection is supported by theuse of 24 bit CRC. The 1/3 coding rate triples the bit-count fortransmission of the block. In LTE, a circular buffer rate matching(CBRM) technique is used in which the systematic bits and the paritybits are placed in a circular buffer. During readout for a selected coderate, if the end of the buffer is reached reading continues by wrappingaround to the beginning of the buffer. The general operations of channelcoding are described in the EUTRA specifications, for example: “3^(rd)Generation Partnership Project; Technical Specification Group RadioAccess Network; Evolved Universal Terrestrial Radio Access (E-UTRA);Multiplexing and channel coding (TS36.212, Release 12.4),” which isincorporated by reference herein.

BRIEF DESCRIPTION OF THE DRAWINGS

Particular embodiments in accordance with the disclosure will now bedescribed, by way of example only, and with reference to theaccompanying drawings:

FIG. 1 is an illustration of a portion of a cellular network thatutilizes wireless backhaul links between radio access network (RAN)nodes;

FIG. 2 is a block diagram of a system using a combination of RS codingand turbo coding;

FIG. 3 is an illustration of turbo block interleaving;

FIGS. 4 and 5 are flow charts illustrating methods for calculating amodulation coding scheme;

FIG. 6 is a schematic that illustrates a particular FEC segmentation andconfiguration;

FIG. 7 is a more detailed block diagram of the transmitter and receiverof FIG. 2;

FIG. 8 is a more detailed block diagram of devices in the system of FIG.1; and

FIGS. 9A and 9B together are a schematic that illustrates another FECsegmentation and configuration arrangement.

Other features of the present embodiments will be apparent from theaccompanying drawings and from the detailed description that follows.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE DISCLOSURE

Specific embodiments of the disclosure will now be described in detailwith reference to the accompanying figures. Like elements in the variousfigures are denoted by like reference numerals for consistency. In thefollowing detailed description of embodiments of the disclosure,numerous specific details are set forth in order to provide a morethorough understanding of the disclosure. However, it will be apparentto one of ordinary skill in the art that the disclosure may be practicedwithout these specific details. In other instances, well-known featureshave not been described in detail to avoid unnecessarily complicatingthe description.

The robustness and tight latency requirements in certain communicationsystems may be addressed by improving the popular Turbo-code based FEC(forward error correction) scheme (e.g., in WiMax, 3G, LTE) with anadditional low-overhead Reed Solomon (RS) outer code. The concatenatedcoding scheme allows achieving very low BLER (block error rate). HybridARQ (automatic repeat request) (HARQ) may be applied on top ofconcatenated Turbo and RS coding scheme for robustness. The FEC schemedisclosed herein may minimize the required number of HARQretransmissions, and thereby reduce latency.

This disclosure describes a FEC code block segmentation andconfiguration method for concatenated Turbo and RS (Reed-Solomon)coding. In particular, this disclosure describes methods of generatingFEC parameters as part of a MCS (modulation coding scheme) based on aTBS (transport block size) received as an input parameter for acommunication system that employs a concatenated Turbo and RS codingscheme. The methods may be easily applied to other concatenated codingschemes as well, including, for example: concatenated convolutionalcode+RS coding, convolutional code+BCH coding, etc.

FIG. 1 is highly simplified block diagram of a system 100 which is partof a cellular communications network, such as a 3GPP Long Term Evolution(LTE) network. Base stations 101-105 serve user equipment (UE) 111-115and other devices (not shown). Base stations 101-105 may be, forexample, LTE eNodeBs. In this example, base stations 101-104 may beremote units (RU) that may be deployed to create small cells for use ina home, business, sports venue, etc. In this example, RU 101-104 aremounted on light poles, for example. Base station 105 is a macro BTSthat may also act has a backhaul hub unit (HU) for RUs 101-104, forexample.

Wireless backhaul links 121-124 allow RUs 101-104 to communicate withBTS 105, for example. Wireless backhaul links may also be used to allowBTS 105 to communicate with other BTSs in the cell network, and/or witha core network access point, for example.

Channel coding between base stations and UEs in an LTE network includesCRC and turbo coding schemes. LTE adopts turbo coding as the channelcoding for the Physical Downlink Shared Channel (PDSCH), for example.Turbo coding provides sufficient bit error rate (BER) for communicationsbetween base stations and UEs, but a more efficient BER is required forbackhaul links 121-124. In general, for a RAN application illustrated inFIG. 1, it is desirable that the wireless backhaul links have a very lowBLER and low latency. A target BLER=10{circumflex over ( )}−6 forexample, as compared to BLER=0.1−0.01 for RAN links to the mobiledevices. Turbo code alone cannot meet the low BLER requirement due to anerror floor in a high SNR environment. Concatenating an RS code to theturbo code allows meeting the low BLER requirement.

The general operation of the physical channels is described in the EUTRAspecifications, such as: “3^(rd) Generation Partnership Project;Technical Specification Group Radio Access Network; Evolved UniversalTerrestrial Radio Access (E-UTRA); Physical Channels and Modulation(TS36.211, Release 12.5.0),” which is incorporated by reference herein,for example.

Because turbo coding processors are already present in LTE base stationsfor use in UE communications, this available hardware may beincorporated into the design of error control coding for backhaulsystems. LTE turbo codes may be used as the core part for error controlcoding. To cope with the error floor for turbo codes at highSignal-to-Noise Ratio (SNR), an outer code may be used to remove theresidual errors of turbo codes. In embodiments disclosed herein, a ReedSolomon (RS) block code is selected as the outer code for a ForwardError Correction (FEC) system. RS code offers excellent error correctingcapability and has the maximum code rate for the number of correctedsymbols.

In coding theory, the Reed-Solomon code belongs to the class ofnon-binary cyclic error correcting codes. It is able to detect andcorrect multiple symbol errors. By adding P check symbols to the data, aReed-Solomon code can detect any combination of up to P erroneoussymbols, or correct up to └P/2┘ symbols. As an erasure code, it cancorrect up to P known erasures, or it can detect and correctcombinations of errors and erasures. Furthermore, Reed-Solomon codes aresuitable as multiple-burst bit-error correcting codes, since a sequenceof b+1 consecutive bit errors can affect at most two symbols of size b.The choice of P is up to the designer of the code, and may be selectedwithin wide limits. The general operation of RS coding is well known,see, e. g. “Reed-Solomon error correction”, Wikipedia, last modifiedApr. 21, 2015.

FIG. 2 is a block diagram of a system using a combination of RS codingand turbo coding according to one embodiment. Input data 201 is receivedat transmitter 202, which applies FEC coding and transmits the data toreceiver 203. Receiver 203 decodes the data to generate received decodeddata 204. Transmitter 202 may be in backhaul RU 101, for example, andmay use FEC for data sent over backhaul link 121 to backhaul HU 105which includes receiver 203, for example.

Input data 201 may be accompanied by a small set of parameters, such as:the block size, which is the number of input bits; a scheduledallocation size that defines the number of resource elements that may beused on the wireless transmission channel; and the modulation order thatspecifies the type of modulation to be used. In this embodiment, the setof parameters may be received via a control channel from a higher levelcontrol function. In another embodiment, the set of parameters may beincluded with the transport block, or be provided to a control functionfor the transmitter from a higher level control function using anavailable communication technique, for example. These parameters maythen be used to compute 220 a modulation coding scheme (MCS) that willbe used to encode the input data for transmission. Calculation of theMCS parameters will be described in more detail below.

Transmitter 202 may add a CRC (cyclic redundancy check) in block 205,then segment the data into code blocks in block 206, and then perform RSencoding in block 207. To improve concatenation gain, a symbolinterleaver 208 may be used between turbo encoder 209 and the RS encoder207 so that symbol errors from the turbo code are dispersed among morethan one RS code block. In one embodiment, turbo encoder 209 may be ahardware turbo accelerator in an LTE base station or RU, for example.

The CRC parity bits and turbo encoding of the input blocks may beperformed using DSP hardware, for example. Software instructions on theDSP may be used to create the RS encoded blocks and interleave the RSblocks. The size of the RS blocks may be selected to match the inputblock size of the turbo coder so that an integer number of RS blocks areinterleaved to create the turbo coder input blocs so that an integernumber of RS blocks are interleaved to create the turbo coder inputblocks. The CRC parity bits and the turbo encoder operation may becompatible with the LTE standard.

The RS encoder 207 and symbol interleaver 208 may be performed bysoftware on a same DSP (digital signal processor). In one embodiment, asingle DSP core may be dedicated to FEC processing to minimize datatransfer among components in the transmitter.

The turbo encoding may be performed using a bit rate coprocessorhardware accelerator. An LTE rate matching module may be used togenerate the exact output block size as calculated for the MCS based onthe received transfer parameters. The RS encoder may use shortened RSblocks, as described in more detail below.

The output of turbo decoder 209 may be concatenated 210 to form a singletransport block, modulated and then transmitted to receiver 203 over awireless backhaul link, as described above.

In some embodiments, a CRC field may be generated for each encoded turboblock, such that the concatenated turbo+RS code FEC blocks are furtherprotected. In some embodiments, a CRC field may be generated for theentire encoded transport block. In either case, the rate matchingcalculations must be adjusted to compensate for the extra CRC bits.

Receiver 203 decodes the data received from transmitter 202. Receivedsignals are processed by turbo decoder 2212 after being deconcateated211 and then by symbol de-interleaver 213. The signal is then RS decodedin block 214 and code block de-segmented 215 and then CRC checked inblock 216 to generate received decoded data 204. Similar to transmitter202, turbo decoder 212 may be a hardware turbo accelerator in an LTEbase station or RU, while the symbol de-interleaver 213 and RS decoder214 may be performed by software on a DSP, for example. In oneembodiment, a single DSP core may be dedicated to error correctionprocessing to minimize data transfer among components in the receiver.

The parameters used for the turbo+RS concatenated code may be selectedto facilitate reuse of the hardware turbo modules in an LTE basestation, for example. LTE turbo code with code rate matching may be usedto provide various code rates in a Modulation and Coding Scheme (MCS)table. The output block size of RS codes from RS encoder 206 shouldmatch the input block size of turbo codes in turbo encoder 208. The RScode may be specified by three parameters (N,K,t), where N is the outputblock size (in symbols), K is the input block size in symbols, and t isthe number of symbol errors that can be corrected. The three parametersare related; K=N−2t. To simplify software implementations of the RSencoder/decoder, RS over the field GF(2⁸) may be used so that the codesymbols correspond to whole bytes.

The RS encoder may use one of many shortened RS codes that are allderived from a single mother code, e.g., RS(255, 255-2t) where t is theerror correction capability in bytes of the RS code (e.g., t=4).Typically a shortened RS code is used which has a form RS(255-S,255-2t-S). For example, RS(192, 184) and RS(128, 122). In addition, forcertain resource allocation sizes, an RS code shortening technique maybe used to provide an additional rate matching scheme on top of theTurbo code block rate matching. The outer RS code may correct residualbit errors at the output of Turbo decoder, and thereby improve the linkperformance, as compared to a conventional FEC scheme using only Turbocode, by pushing down the potential error floor in the block error ratio(BLER) performance curve. Concatenating RS code to turbo code allowsvery low BLER, such as at a BLER=10⁻⁶ or less.

Referring again to FIG. 2, CRC block 205, the input data block to the RSencoder is appended with CRC parity bits for error detection at thereceiver. In one embodiment, a CRC accelerator on a bit rate coprocessor(BCP) for CRC encoder/decoder may be used. The length of the CRC paritybits may depend on the size of the turbo block size.

However, in the embodiment described in more detail below, a 24-bit CRCmay be used for all block sizes, for example.

The generator polynomials from the LTE standard may be used for thedifferent size CRC generation, such as:g _(crc24A) =D ²⁴ +D ²³ +D ¹⁸ +D ¹⁷ +D ¹⁴ D ¹¹ +D ¹⁰ +D ⁷ D ⁶ D ⁵ D ⁴ D³ +D+1, org _(crc24B) =D ²⁴ D ²³ D ⁶ +D ⁵ +D+1

Referring again to FIG. 2, the encoding and decoding may be done similarto LTE to enable the reuse of the hardware accelerator, for example.After adding 205 the CRC parity bits, the input block size is segmented206 into RS blocks. The number of RS blocks depends on the turbo blocksize and the number of turbo blocks. For example, with three turboblocks of size 6144, then there may be a total of 12 RS (192,184,4)blocks; or with one turbo block of size 1024, then there may be one RS(128,122,3) block.

Interleaver 208 maps the output of RS blocks to the input of turboblocks. The objective of the interleaver is to spread any possible errorfrom the turbo decoder among as many RS blocks as possible to maximizethe correcting probability. The RS output is in symbols (i.e., 8 bits);while the unit in the turbo block is a bit.

FIG. 3 illustrates the interleaver operation in an example embodimentwith a turbo block size 6144 and three turbo blocks 301A-C. In thisexample, there are a total of 12 RS blocks (192,184,4) 302A-L. The turboblocks 301A-C are filled sequentially by symbols from successive RSblocks 302A-L. For example, the first 8 bits in the first turbo block301A are from the first symbol (i.e., 8 bits) of the first RS block302A, the second 8 bits of the first turbo block 301A are the firstoutput symbol from the second RS block 302B, and the 12^(th) set of 8bits in the first turbo block 301A are the first output symbol in the12^(th) RS block 302L, and so on as shown in FIG. 3. The whole eightbits of each RS symbol are sequentially placed in the correspondinglocations in the turbo block.

In another embodiment, the interleaving may be constrained to just asingle turbo block, for example. In that case, turbo block 301A mayreceive output symbols from RS blocks 302A-302D, turbo block 301B mayreceive output symbols from RS blocks 302E-302H, etc. Restrictinginterleaving in this manner may reduce latency at the receiver, forexample.

FEC Code Block Segmentation and Configuration Details

Typically, after the CRC bits are added, one transport block may besegmented into two or more FEC blocks before they are FEC-encoded andsymbol-mapped (e.g., with a QAM mapper) and transmitted on the resources(frequency and time resource) available in one transmission timeinterval (TTI). The TTI typically may be one slot or one subframe, e.g.,0.5 ms or 1 ms in the example LTE system.

LTE systems use a quadrature amplitude modulation (QAM) scheme for thePDSCH and it may therefore be convenient to use QAM for the wirelessbackhaul links. QAM conveys two analog message signals, or two digitalbit streams, by changing (modulating) the amplitudes of two carrierwaves, using an amplitude-shift keying (ASK) digital modulation schemeor an amplitude modulation (AM) analog modulation scheme. The twocarrier waves, usually sinusoids, are out of phase with each other by90° and are thus called quadrature carriers or quadraturecomponents—hence the name of the scheme. The modulated waves are summed,and the final waveform is a combination of both phase-shift keying (PSK)and amplitude-shift keying (ASK).

In LTE, ten 1 ms subframes compose a 10 ms frame. Each subframe dividesinto two slots. The smallest modulation structure in LTE is the ResourceElement (RE). A Resource Element is one 15 kHz subcarrier by one symbol.Resource Elements are aggregated into Resource Blocks. A Resource Blockhas dimensions of subcarriers by symbols. Twelve consecutive subcarriersin the frequency domain and six or seven symbols in the time domain formeach Resource Block. The total number of resource elements that may beallocated in a backhaul channel may depend on the bandwidth of thechannel. In a typical communication channel, there may be thousands ofRE available at any given moment in time that may be allocated amongmore than one user of the channel.

A high degree of flexibility is desirable for the various possibleresource allocation sizes, various modulation orders, and various targetspectral efficiencies for a given resource allocation size. Likewise, itmay be desirable to maintain a low order of complexity for determiningMCS parameters for each transport block of data. Likewise, it may bedesirable to support Turbo code configurations that are alreadysupported by commercially available devices for 3G, LTE, WiMax, etc.,for example.

As will be described in more detail below, in order to reducecomplexity, a single mother code for outer RS coding may be employed,e.g., RS(255,247). Multiple FEC blocks (Turbo+RS) for a single transportblock may be configured to have approximately equal error-correctioncapabilities. In this way, the overall transport block error rate may beminimized in an efficient manner. In particular, flexible FECsegmentation and configuration is achieved by carefully employing RScode shortening on top of turbo code rate matching.

Table 1 summarizes the parameter definitions and terminology that willbe used in the following disclosure.

TABLE 1 Parameter Definitions Symbol Definition nRE Resource allocationsize for one TTI [in number of REs (RE: resource element)] modOrderModulation order in bits per QAM symbol TBS, tbs Transport block size[bits]. It is assumed that tbs is selected such that it leads to one ofvalid turbo block sizes after FEC code block segmentation procedure.k_tb Transport block with CRC bits added, tbs + 24 [bits] nFEC Number ofFEC blocks in a transport block K_fec Input FEC block size [Bytes] nRSNumber of RS blocks in a FEC block K_rs Nominal input RS block size[Bytes] N_rs Nominal output (coded) RS block size [Bytes] nRS_adj Numberof RS blocks that should be encoded with RS(N_rs + 1, K_rs + 1): FirstnRS_adj RS blocks in each FEC block are encoded with RS(N_rs + 1, K_rs +1), and the remainder (nRS − nRS adj) RS blocks are encoded withRS(N_rs, K_rs) N_rs_fec FEC block size after RS encoding andconcatenation [Bytes] k_tc Input Turbo code block size [bits] k_tc_setSet of all the possible Turbo input block sizes n_tc Nominal outputTurbo code block size [bits] nTC_adj Number of Turbo code blocks thatshould be encoded with TC(n_tc + 1, k_tc): First nTC_adj Turbo blocks ina transport block are encoded with TC(n_tc + 1, k_tc), and the remainder(nFEC − nTC_adj) Turbo blocks are encoded with TC(n_tc, k_tc) n_tbOutput (encoded) transport block size after Turbo encoding andconcatenation [bits] rs · T Error correction capability of the mother RScode [in Byte] rs · N Encoded output block size of the mother RS code[in Byte] rs · K Input block size of the mother RS code [in Byte] rs · PParity size of the mother RS code [in Byte] efficiency Spectralefficiency, k_tb/nRE [bits/Hz]

Table 2 provides an example of a sixteen entry (MCS index) MCS table fora particular resource allocation size of 4896 REs. Each row of the tabledefines a specific MCS for a given transport block size (TBS). Thistable includes sixteen potential transport block sizes ranging from 2408bits to 35816 bits, as denoted in the third column. The second columnrefers to the modulation order: 2 for QPSK, 4 for 16QAM, 6 for 64QAM,and 8 for 256QAM transmissions.

TABLE 2 FEC segmentation and configuration as part of MCS table (forresource allocation size of 4896 REs) MCS Modu- RS codes Turbo codesindex lation TBS k_tb nFEC K_fec nRS K_rs N_rs nRS_adj N_rs_fec k_tcn_tc nTC_adj n_tb efficiency 0 2 2408 2432 1 304 2 152 160 0 320 25609792 0 9792 0.4967 1 2 3560 3584 1 448 3 149 157 1 472 3776 9792 0 97920.7320 2 2 4776 4800 1 600 4 150 158 0 632 5056 9792 0 9792 0.9804 3 25992 6016 2 376 3 125 133 1 400 3200 4896 0 9792 1.2288 4 4 7784 7808 2488 3 162 170 2 512 4096 9792 0 19584 1.5948 5 4 9832 9856 2 616 4 154162 0 648 5184 9792 0 19584 2.0131 6 4 11112 11136 2 696 4 174 182 0 7285824 9792 0 19584 2.2745 7 4 13608 13632 3 568 4 142 150 0 600 4800 65280 19584 2.7843 8 6 15912 15936 3 664 4 166 174 0 696 5568 9792 0 293763.2549 9 6 18408 18432 4 576 4 144 152 0 608 4864 7344 0 29376 3.7647 106 20712 20736 4 648 4 162 170 0 680 5440 7344 0 29376 4.2353 11 6 2365623680 5 592 4 148 156 0 624 4992 5875 1 29376 4.8366 12 8 26856 26880 5672 4 168 176 0 704 5632 7833 3 39168 5.4902 13 8 29928 29952 6 624 4156 164 0 656 5248 6528 0 39168 6.1176 14 8 33000 33024 6 688 4 172 1800 720 5760 6528 0 39168 6.7451 15 8 35816 35840 7 640 4 160 168 0 6725376 5595 3 39168 7.3203

Notice in Table 2 the k_tc column specifies the input block size of theturbo code to be used for each MCS to accommodate the various sizes oftransport blocks. An example embodiment of a communicationinfrastructure device for 3G and LTE may support the set of possibleturbo codes (k_tc_set) listed in Table 2, for example. In this example,the defined set of k_tc is an implementation constraint that must beaccommodated by the calculated MCS.

TABLE 3 k_tc_set for an example communication device for 3G and LTEk_tc_set = {40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136,144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248,256, 264, 272, 280, 288, 296, 304, 312, 320, 328, 336, 344, 352, 360,368, 376, 384, 392, 400, 408, 416, 424, 432, 440, 448, 456, 464, 472,480, 488, 496, 504, 512, 528, 544, 560, 576, 592, 608, 624, 640, 656,672, 688, 704, 720, 736, 752, 768, 784, 800, 816, 832, 848, 864, 880,896, 912, 928, 944, 960, 976, 992, 1008, 1024, 1056, 1088, 1120, 1152,1184, 1216, 1248, 1280, 1312, 1344, 1376, 1408, 1440, 1472, 1504, 1536,1568, 1600, 1632, 1664, 1696, 1728, 1760, 1792, 1824, 1856, 1888, 1920,1952, 1984, 2016, 2048, 2112, 2176, 2240, 2304, 2368, 2432, 2496, 2560,2624, 2688, 2752, 2816, 2880, 2944, 3008, 3072, 3136, 3200, 3264, 3328,3392, 3456, 3520, 3584, 3648, 3712, 3776, 3840, 3904, 3968, 4032, 4096,4160, 4224, 4288, 4352, 4416, 4480, 4544, 4608, 4672, 4736, 4800, 4864,4928, 4992, 5056, 5120, 5184, 5248, 5312, 5376, 5440, 5504, 5568, 5632,5696, 5760, 5824, 5888, 5952, 6016, 6080, 6144}

It can be seen after considering Table 2 and Table 3 that it would takea large amount of storage to store multiple MCS tables that could covera wide range of RE allocations and TBSs. Embodiments of the disclosuremay include a function that may calculate MCS parameters for aparticular transport block (TB) based on the following parameters thatdefine the overall code rate: TBS, a scheduled allocation size for theTB (nRE), and the modulation order to be used for the TB (modOrder). Theoverall code rate (OCR) for the transport block is defined by equation(1).OCR=(tbs+CRC)/(nRE*modOrder)  (1)

As will now be described in more detail, the number and size of each RSblock and the number and size of each turbo block that will be used totransmit the TB may be simply calculated rather than storing a largenumber of MCS tables for the range of REs that can be accessed using theMCS index corresponding to the TBS for a given number of REs to providethis information.

FIG. 4 is a flow chart illustrating a method for calculating amodulation coding scheme (MCS) to perform function 220, referring backto FIG. 2. Table 4 provides pseudo code for determining a MCS for aparticular transport block based on just the transport block size (TBS),the assigned modulation order (modOrder) and the allocated number of REs(nRE) for that transport block. TBS, nRE, and modOrder may be providedby a higher level of control software in an LTE system, for example thatdetermines the size of the transport block. In Table 4, “%” indicates acomment follows.

As described above, the TBS may be large enough so that it cannot beencoded even with the largest turbo block. In that case, the TB shouldbe segmented into multiple FEC blocks. Each of the FEC blocks may beencoded with RS encoder using its RS implementation constraints and alsowith turbo encoder with its turbo implementation constraints, includingk_tc should be in k_tc_set. It is therefore necessary to determine whatinput turbo code block size (k_tc) can be used to segment the transportblock into a number of FEC blocks (nFEC) in order to prepare the currenttransport block of data for transmission. The size of the FEC block(s)then may be used to calculate the RS block parameters.

In this embodiment, a set of parameters is predefined and used for alltransport blocks. In this example, the following set of parameters isdefined: rs·T=4, rs·P=2*rs·T; rs·N=192; and rs·K=rs·N−rs·P, as shown inTable 4. These parameters define a common RS code having the form of(192, 184). In another embodiment, different RS parameters may beselected than those disclosed herein. Furthermore, in some embodiments,the set of parameters may be dynamic, in that different sets may bechosen for different size transport blocks, for example.

In this example, a 24 bit CRC is added to all transport blocks,regardless of size, such that k_tb=tbs+24, as indicated in Table 4.However, as mentioned above, in other embodiments the size of the CRCfield may be different for different size transport blocks, for example.

In this example, since the number of FEC blocks is not known when thetransport block is received 402, an iterative approach is used in whichan initial set of RS code parameters is calculated 406 afterinitializing 404 nFEC=1. In Table 4, the pseudo code labeled “%calculate RS codes parameters” illustrates how a number of RS blocks(nRS) may be determined by dividing the transport block size with CRCbits (k_tb) by the current nFEC and by eight bits per byte and using aceil (x) function. In this example, ceil (X) rounds the elements of X tothe nearest integers towards infinity, and floor (X) rounds the elementsof X to the nearest integers towards minus infinity. A nominal input RSblock size (N_rs) may be determined by using the floor (X) function asshown in Table 4.

An adjustment 408 may then be performed to increase (or reduce) the sizeof one or more RS blocks in order to provide rate matching withoutadding padding bits. The number of RS blocks that need adjustments(nRS_adj) may be calculated by subtracting K_rs*nRS from K_fec, as shownin Table 4. The first nRS_adj RS blocks in each FEC block are encodedwith RS(N_rs+1, K_rs+1), and the remaining (nRS−nRS_adj) RS blocks areencoded with RS(N_rs, K_rs).

A FEC block size after RS encoding and concatenation (in bytes)(N_rs_fec) is then calculated by adding K_fec to rs·P*nRS, as shown inTable 4. A total input turbo code block size (k_tc) in bits is thencalculated by multiplying N_rs_fec by eight.

k_tc is then compared 410 to the set of all allowable k_tc to determineif the calculated k_tc is a member of the set. As mentioned above, Table3 includes an example set of allowable k_tc for an example type of 3Gand LTE communication device. If not, then nFEC is incremented 411 andthe process of calculating 406, 408 the RS parameters is repeated untila match is found.

Once a k_tc match is found, the turbo code parameters may be calculated412 using the code illustrated in Table 4 in the section labeled “%calculate Turbo code parameters”. The output (encoded) transport blocksize after Turbo encoding and concatenation [in bites] may be calculatedby multiplying nRE by the modulation order (modOrder) parameter that wasprovided along with the transport block of data. The nominal outputTurbo code block size [in bits] may then be calculated using thefloor(x) function on the result of n_tb/nFEC, as shown in Table 4.

An adjustment 414 may then be made to increase (reduce) the size of oneor more FEC blocks in order to provide rate matching without addingpadding bits. The number of Turbo blocks that need adjustments (nTC_adj)is calculated by subtracting n_tc*nFEC from n_tb, as shown in Table 4.The first nTC_adj Turbo blocks in a transport block are encoded withTC(n_tc+1, k_tc), and the remaining (nFEC−nTC_adj) Turbo blocks areencoded with TC(n_tc, k_tc).

After calculating the modulation and coding scheme for the currenttransport block, the transport block may then be passed to the RSencoder 207 for RS encoding, referring again to FIG. 2, and then tosymbol interleaver 208 and to turbo encoder 209.

When the encoded transport block is transmitted to receiver 203, thecalculated MCS parameters may be forwarded along with the data so thatdecoder function within the receiver knows how the transport block isorganized. Alternatively, the receiver may perform calculations 222similar to those described above in order to determine how the transportblock is organized.

TABLE 4 pseudo code for MCS determination based on TBS   For a given setof inputs: tbs, modOrder, nRE % parameters for mother RS code rs.T = 4;rs.P = 2*rs.T; rs.N = 192; rs.K = rs.N − rs.P; % transport block sizewith CRC added k_tb = tbs + 24; % initialize variables nFEC = 0;flagValid = 0; while flagValid==0  nFEC = nFEC + 1;  % calculate RScodes parameters  K_fec = k_tb/nFEC/8;  nRS = ceil(K_fec/rs.K);  K_rs =floor(K_fec/nRS);  N_rs = K_rs + rs.P;  nRS_adj = K_fec − K_rs*nRS; N_rs_fec = K_fec + rs.P*nRS;  k_tc = 8*N_rs_fec;  % check if k_tc isvalid  if k_tc is a member of k_tc_set   flagValid = 1;  end end %calculate Turbo code parameters n_tb = nRE*modOrder; n_tc =floor(n_tb/nFEC); nTC_adj = n_tb − n_tc*nFEC;

FIG. 5 is a flow chart illustrating another method for calculating amodulation coding scheme (MCS) to perform function 220, referring backto FIG. 2. In this embodiment, the number of FEC blocks (nFEC) may alsobe provided 502 by the high level control software along with the inputtransport block and the TBS, nRE, and modOrder parameters. In this case,the FEC segmentation and parameters may be generated with lowercomplexity but at a cost of an additional memory requirement for keepingthe number of FEC blocks information for each MCS index. Pseudo code forthis method is provided in Table 5. Notice that the computations for theRS codes parameters 506 and turbo code parameters 512 are the same asdescribed with regard to FIG. 4, except that the value on nFEC isprovided by a higher level control function. Thus, in this case, theiterative loop for determining nFEC is no longer needed.

TABLE 5 pseudo code for MCS determination based on TBS when nFEC isgiven For a given set of inputs: tbs, nFEC, modOrder, nRE, % parametersfor mother RS code rs.T = 4; rs.P = 2*rs.T; rs.N = 192; rs.K = rs.N −rs.P; % transport block size with CRC added   k_tb = tbs + 24; %calculate RS codes parameters K_fec = k_tb/nFEC/8; nRS =ceil(K_fec/rs.K); K_rs = floor(K_fec/nRS); N_rs = K_rs + rs.P; nRS_adj =K_fec − K rs*nRS; N_rs_fec = K_fec + rs.P*nRS; k_tc = 8*N_rs_fec; %calculate Turbo code parameters n_tb = nRE*modOrder; n_tc =floor(n_tb/nFEC); nTC_adj = n_tb − n_tc*nFEC;

Table 6 provides pseudo code for an optional scheme for calculating theturbo code parameters that may be applied to either scheme illustratedby FIG. 4 or 5, for example. In this example, the variable nq_tc is anominal output turbo block size in number of QAM symbols. In thisexample, the definition of nTC-adj is changed slightly from what isgiven in Table 1, as follows: the first nTC_adj Turbo blocks in atransport block are encoded with TC(n_tc+modOrder, k_tc), and theremainder (nFEC−nTC_adj) Turbo blocks are encoded with TC(n_tc, k_tc),where modOrder is the number of bits per QAM symbol. In this manner, theoutput of the turbo blocks may be made to align with QAM symbolboundaries during the modulation stage, which may allow for easierimplementation.

TABLE 6 Alternate scheme for calculating Turbo Code parameters   % Turbocode parameters n_tb = nRE*modOrder; nq_tc = floor(nRE/nFEC); n_tc =nq_tc*modOrder; nTC_adj = nRE − nq_tc*nFEC;

In the example of Table 6, once a k_tc match is found as shown in Table4 or Table 5, the turbo code parameters may be calculated using the codeillustrated in Table 6. The output (encoded) transport block size afterTurbo encoding and concatenation [in bits] (n_tb) may be calculated bymultiplying nRE by the modulation order (modOrder) parameter that wasprovided along with the transport block of data. The nominal outputTurbo code block size in number of QAM symbols (nq_tc) may then becalculated using the floor(x) function on the result of nRE/nFEC, asshown in Table 6. The nominal output Turbo code block size in bits(n_tc) may then be determined by multiplying nq_tc by the modulationorder, as shown in Table 6.

An adjustment may then be made to increase (reduce) the size of one ormore FEC blocks in order to provide rate matching without adding paddingbits. The number of Turbo blocks that need adjustments (nTC_adj) may becalculated by subtracting nq_tc*nFEC from nRE, as shown in Table 6. Thefirst nTC_adj Turbo blocks in a transport block are encoded withTC(n_tc+modOrder, k_tc), and the remainder (nFEC−nTC_adj) Turbo blocksare encoded with TC(n_tc, k_tc).

As mentioned above, higher level control software is responsible fordetermining the transport block size to be compatible with the overallMCS structure in which the detailed parameters may be computed asdescribed above. A TBS size for each MCS index for a given allocationsize may be determined offline as part of the air interface design to becompatible with the overall FEC structure and constraints and meet thetarget spectral efficiency, for example. Table 6 provides a portion oftransport block size table that covers nRE from 150 up to 432, with eachresource allocation size (nRE) having sixteen MCS indices. While elevencolumns corresponding to eleven different nRE allocations areillustrated in Table 6, in a typical LTE system, there may be as many asone hundred or more possible allocation combinations for nRE allocationsup to 9600, for example. Thus, the calculation scheme disclosed hereinmay replace the need for storing nearly one hundred MCS tables such theMCS table illustrated in Table 2 with a much simpler transport blocksize table as partially illustrated in Table 7.

TABLE 7 Transport Block Size table example MCS nRE Index 150 216 240 252288 300 324 360 372 396 432 0 88 136 152 160 184 192 216 240 248 264 2961 120 192 208 224 256 272 296 328 344 368 400 2 160 240 272 288 328 344376 416 424 456 504 3 216 320 360 376 424 456 488 552 568 600 664 4 280408 456 472 552 568 616 696 712 760 840 5 320 456 520 552 632 648 712792 824 872 968 6 392 568 632 664 776 808 872 968 1000 1064 1160 7 456680 760 792 904 936 1032 1128 1192 1256 1384 8 536 792 872 920 1064 10961192 1320 1384 1480 1608 9 616 888 1000 1032 1192 1256 1352 1512 15441672 1800 10 696 1032 1128 1192 1384 1416 1544 1736 1768 1896 2088 11744 1096 1224 1288 1448 1512 1640 1832 1896 2024 2216 12 840 1224 13521416 1640 1704 1832 2024 2088 2280 2472 13 904 1320 1480 1544 1768 18642024 2216 2280 2472 2664 14 1000 1448 1608 1672 1896 2024 2152 2408 24722664 2920 15 1064 1576 1736 1832 2088 2152 2344 2600 2728 2920 3176

FIG. 6 is a schematic that illustrates a particular FEC segmentation andconfiguration for MCS index 4 of MCS table shown in Table 2 using 4896REs with 16-QAM. In this example, the higher level control softwarewould provide the transmitter with a transport block 602 having a TBS of7784 bits. After adding a 24 bit CRC, k_tb=7808 bits, which is 976bytes, as illustrated at 604.

After one iteration of calculating RS code parameters 406, 408,referring again to FIG. 4, a determination may be made that nFEC=2 forthis transport block. nRS is calculated to be three for each FEC block,as illustrated by RS blocks 606-608. K_rs is calculated to be 162 andN_rs is calculated to be 170. nRS_adj is calculated to be two, thereforeRS blocks 606 and 607 are RS encoded with RS(N_rs+1, K_rs+1), and theremaining (nRS−nRS_adj) RS block 608 is encoded with RS(N_rs, K_rs).

The RS blocks are then interleaved to form turbo blocks 610, 611 thateach have 4096 bits. After turbo encoding and rate matching, two codewords 612, 613 are produced that each have 9792 bits. These two FECblocks are then concatenated to form one 19584 bit FEC encoded transportblock 614. TB 614 may then be sent to a mapper in transmitter 202,referring again go FIG. 2, for modulation using 16-QAM on 4896 REs.

FIG. 7 is a more detailed block diagram of the transmitter and receiverof FIG. 2. This figure shows where each of MCS parameters arerelevant/applied in the encoding and decoding chain. And it alsoillustrates an example overall signal chain including symbol mapper andAFE at Tx, and AFE, LLR calculation in Rx chain. Symbol mapper 730performs symbol using known modulation techniques, such as QPSK, 16QAM,64QAM, and 256QAM for an LTE system, for example.

System Examples

FIG. 8 is a more detailed block diagram illustrating operation of RU 101and HU 105 in the network system of FIG. 1, for example. As shown, RUdevice 101 includes one or more processors 810 coupled to one or morememory blocks 812 and backhaul transceiver 820. Memory 812 stores(software) applications 814 for execution by processor 810. As anexample, such applications may be categorized as operating systems (OS),device drivers, databases, communication protocols and layers, or othercategories, for example. Regardless of the exact nature of theapplications, at least some of the applications may direct RU device 101to transmit to HU device 105 periodically or continuously viatransceiver 820 on backhaul channels 846, 847, as described above inmore detail.

Transceiver 820 includes uplink logic which may be implemented byexecution of instructions that control the operation of the transceiver.Some of these instructions may be stored in memory 812 and executed whenneeded by processor 810. As would be understood by one of skill in theart, the components of the uplink Logic may involve the physical (PHY)layer and/or the Media Access Control (MAC) layer of the transceiver820. Transceiver 820 includes one or more receivers 822 and one or moretransmitters 824.

Transceiver 820 may be configured to transmit and receive one or morebackhaul channels 846-847 using concatenated Turbo and RS coding asdescribed in more detail above. RS coding parameters and Turbo codingparameters may be calculated on the fly by processor 810 as describedabove for each transport block. In this manner, a large number of MCSoptions may be provided without needing a large storage space in memory812 for MCS tables.

A separate set of transceiver(s) 850 may be provided to communicate withvarious fixed or mobile devices in the vicinity, such as device 111,referring back to FIG. 1, on uplink and downlink channels, using knownLTE protocols, for example. Data received from mobile devices viatransceivers 850 may then be transmitted via backhaul channels 121 to HU105, for example. Likewise, data received from BU 105 via backhaulchannels 121 may be transmitted to mobile devices via transceivers 850.

HU device 105 may include one or more processors 830 coupled to one ormore blocks of memory 832, symbol processing circuitry 838, and atransceiver 840 via backplane bus 836. The memory 832 storesapplications 834 for execution by processor 830. The applications maycomprise any known or future application useful for managing wirelesscommunications. At least some of the applications 834 may direct the hubdevice to manage transmissions to or from RU device 101 using backhaulchannels 846, 847, for example.

Transceiver 840 may include an uplink Resource Manager, which enablesthe HU device to selectively allocate backhaul channel resources to thevarious RU devices 101-104 in the vicinity of HU 105. As would beunderstood by one of skill in the art, the components of the uplinkresource manager may involve the physical (PHY) layer and/or the MediaAccess Control (MAC) layer of the transceiver 840. Transceiver 840includes a Receiver(s) 842 for receiving transmissions from various RUwithin range of the NodeB and transmitter(s) 844 for transmitting dataand control information to the various RU within range of the NodeB. Insome embodiments, HU 105 may also communicate directly with nearby UE ina similar manner as described for RU 101, for example.

The uplink resource manager executes instructions that control theoperation of transceiver 840. Some of these instructions may be locatedin memory 832 and executed when needed on processor 830. The resourcemanager controls the transmission resources allocated to each RU and UEthat is being served by HU device 105 and broadcasts control informationvia the physical downlink control channel PDCCH. In various embodiments,there may be multiple processors, hardware accelerators, and memoryblocks to perform the operations described herein, for example.

Other Embodiments

While the disclosure has been described with reference to illustrativeembodiments, this description is not intended to be construed in alimiting sense. Various other embodiments of the disclosure will beapparent to persons skilled in the art upon reference to thisdescription. For example, although the detailed example described aboveis used in connection with an LTE system, it will be understood thatembodiments may be used with systems complying with many types ofwireless protocols and standards, such as 3G, LTE, WiMax, etc.

While this disclosure describes methods of generating FEC parameters aspart of a MCS (modulation coding scheme) based on a TBS (transport blocksize) received as an input parameter for a communication system thatemploys a concatenated Turbo and RS coding scheme, the methods may beeasily applied to other concatenated coding schemes in which an innercode such as turbo or convolutional is concatenated with an outer codesuch as RS or BCH, including, for example: concatenated convolutionalcode+RS coding, convolutional code+BCH coding, etc.

While example MCS tables having 16 entries for a given number ofresource allocations were discussed, other embodiments may use a largeror smaller number of MCS options for a given number of resourceallocations.

While use of a ceil(x) function was used to determine nRS, in anotherembodiment a floor(x) function may be used with corresponding changes inthe nRS_adj calculation, for example. Similarly, a ceil(x) function maybe used to determine N-rs. Other variations to the computation equationsmay be made in a similar manner, for example.

FIGS. 9A-9B together are a schematic that illustrates another FECsegmentation and configuration arrangement that is similar to FIG. 6. Inthis example, a CRC field 905 is generated for received transport block902. After generating and appending the 24 bit CRC, k_tb=7760 bits,which is 970 bytes, as illustrated at 904. CRC augmented block 904 maythen be segmented to form two FEC blocks 920, 921, for example.Additionally, in this example, a CRC field 925 and 926 may be generatedfor FEC blocks 920, 921 and appended to form augmented FEC blocks 922,923. MCS calculation and encoding processing may then proceed in asimilar manner as described above with regard to FIG. 6. Note that thesize of transport block 902 has been adjusted with respect to transportblock 602 by the higher level control logic to accommodate theadditional CRC fields 925, 926. In other embodiments, additional ordifferent arrangements of CRC fields may be added to various blocks tofurther improve error detection.

The techniques described in this disclosure may be implemented inhardware, software, firmware, or any combination thereof. If implementedin software, the software may be executed in one or more processors,such as a microprocessor, application specific integrated circuit(ASIC), field programmable gate array (FPGA), or digital signalprocessor (DSP). The software that executes the techniques may beinitially stored in a computer-readable medium such as compact disc(CD), a diskette, a tape, a file, memory, or any other computer readablestorage device and loaded and executed in the processor. In some cases,the software may also be sold in a computer program product, whichincludes the computer-readable medium and packaging materials for thecomputer-readable medium. In some cases, the software instructions maybe distributed via removable computer readable media (e.g., floppy disk,optical disk, flash memory, USB key), via a transmission path fromcomputer readable media on another digital system, etc.

Certain terms are used throughout the description and the claims torefer to particular system components. As one skilled in the art willappreciate, components in digital systems may be referred to bydifferent names and/or may be combined in ways not shown herein withoutdeparting from the described functionality. This document does notintend to distinguish between components that differ in name but notfunction. In the following discussion and in the claims, the terms“including” and “comprising” are used in an open-ended fashion, and thusshould be interpreted to mean “including, but not limited to . . . .”Also, the term “couple” and derivatives thereof are intended to mean anindirect, direct, optical, and/or wireless electrical connection. Thus,if a first device couples to a second device, that connection may bethrough a direct electrical connection, through an indirect electricalconnection via other devices and connections, through an opticalelectrical connection, and/or through a wireless electrical connection.

Although method steps may be presented and described herein in asequential fashion, one or more of the steps shown and described may beomitted, repeated, performed concurrently, and/or performed in adifferent order than the order shown in the figures and/or describedherein. Accordingly, embodiments of the disclosure should not beconsidered limited to the specific ordering of steps shown in thefigures and/or described herein.

It is therefore contemplated that the appended claims will cover anysuch modifications of the embodiments as fall within the true scope andspirit of the disclosure.

What is claimed is:
 1. A method comprising: receiving a transport blockof data for transmission having a transport block size, receiving a setof parameters that define a target code rate; determining a number N ofan inner code blocks needed to transmit the transport block; determininga number M of outer code blocks based on the number of inner code blocksand on the set of parameters that define the target code rate; dividingthe received transport block into M outer blocks and encoding each ofthe outer code blocks to form M encoded outer code blocks; segmentingthe M encoded outer code blocks into N inner code blocks and encodingthe N inner code blocks to form N encoded inner blocks; and arrangingthe N encoded inner code blocks to form an encoded transport block. 2.The method of claim 1, further including generating a CRC field for thereceived transport block and appending the CRC field to the receivedtransport block, wherein dividing the received transport block into Mouter blocks includes dividing the CRC field.
 3. The method of claim 1,further including interleaving the M encoded outer blocks prior tosegmenting into N inner blocks.
 4. The method of claim 1, in whichdetermining the number N of the inner code block includes calculating alargest inner code block size based on a specified set of implementationconstraints.
 5. The method of claim 1, in which codes for encoding eachouter code block are obtained from a single mother code having a set ofencoding parameters.
 6. The method of claim 1, further comprisingperforming rate matching of the outer code blocks by applying codeshortening to a mother code based on calculating an amount to shortenthe mother code to form M shortened outer code blocks using the receivedset of parameters that define a target code rate.
 7. The method of claim6, further including calculating an amount to adjust a length of one ormore of the M shortened outer code blocks required to eliminate paddingbits.
 8. The method of claim 1, in which the number N of inner codeblocks is determined by receiving the number N as a parameter.
 9. Themethod of claim 1, further comprising performing rate matching of theinner code blocks to form N encoded inner code blocks using the receivedset of parameters that define a target code rate.
 10. The method ofclaim 9, further including calculating an amount to adjust a length ofone or more of the N encoded inner code blocks required to eliminatepadding bits.
 11. The method of claim 1, further including transmittingthe encoded transport block and transmitting the number N and the numberM along with the encoded transport block.
 12. The method of claim 1, inwhich the one or more parameters that define a target code rate includea scheduled allocation size and a modulation order.
 13. The method ofclaim 12, further including calculating encoding parameters for theinner code blocks in accordance with the scheduled allocation size andmodulation order parameters.
 14. The method of claim 12, in whichencoding the M outer code blocks performs Reed Solomon coding, or BCHcoding and in which encoding the N inner code blocks performs turbocoding or convolutional coding.
 15. The method of claim 1, furtherincluding: segmenting the received transport block into two or moreforward error correction (FEC) blocks; generating and appending a CRCfield to each of the two or more FEC blocks.
 16. A method comprising:receiving and demodulating an encoded transport block having N encodedinner block formed by M encoded outer code blocks; receiving a set ofparameters that define a target code rate and a transport block size;determining the number N of an inner code blocks needed to transmit thetransport block; determining the number M of outer code blocks based onthe number of inner code blocks and on the set of parameters that definethe target code rate; decoding the N inner code blocks in the encodedtransport block to form M encoded inner code blocks; and decoding the Mencoded inner code blocks.
 17. A system for wirelessly transmittingdata, the system comprising: data producing logic; a transmitter coupledto receive data from the data producing logic, control logic coupled tothe data producing logic and to the transmitter; wherein the transmitterincludes: a processor; outer coding logic coupled to the processoroperable to encode a block of data using a first type of encoding; innercoding logic coupled to the processor operable to encode a block of datausing a second type of encoding; transmitter logic controllably coupledto the processor operable to wirelessly transmit encoded transportblocks of data; and a non-transitory computer readable medium coupled tothe processor storing software instructions that, when executed by theprocessor, cause a method for performing wireless communication usingcode block segmentation and configuration with concatenated forwarderror correction encoding to be performed, the method comprising:determining a number N of a inner code blocks needed to transmit atransport block of data received from the data producing logic;determining a number M of outer code blocks based on the number of innercode blocks and on a set of parameters received from the control logicthat define the target code rate; dividing the received transport blockinto M outer blocks and encoding each of the outer code blocks by theouter coding logic to form M encoded outer code blocks; and segmentingthe M encoded outer code blocks into N inner code blocks and encodingthe N inner code blocks by the inner coding logic to form N encodedinner blocks.
 18. The system of claim 17, further comprising performingrate matching of the outer code blocks by applying code shortening to amother code based on calculating an amount to shorten the mother code toform M shortened outer code blocks using the received set of parametersthat define a target code rate.
 19. The system of claim 18, furtherincluding calculating an amount to adjust a length of one or more of theM shortened outer code blocks required to eliminate padding bits. 20.The system of claim 17, in which calculating the number N of the innercode blocks further includes performing rate matching of the inner codeblocks to form N encoded inner code blocks using the received set ofparameters that define a target code rate.